// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import state from '@admin/views/Maintain/Device/DeviceList/store/state'

const STATUS = state.DICT.STATUS.filter(([id]) => [2, 5, 6].includes(id))

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    getList: state.API.getList,
    validParam(param) {
      return !CORE.isEmpty(param.statusList)
    },
    dealList([obj], { state: { MAP } }) {
      if (MAP.COUNT) MAP.COUNT = obj || {}
    },
  },

  /**
   * 映射
   */
  MAP: state.MAP,

  /**
   * 字典
   */
  DICT: {
    /**
     * 状态
     */
    STATUS,
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: '', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: {
    ...state.INIT_PARAM,
    statusList: STATUS.map(([id]) => id),
    disableOrgan: false, // 是否禁用组织
  },

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: state.INIT_ONE,
}
